Memory cells can be programmed by applying a set of voltages during a programming cycle. In particular, to program data to a high-density memory device, e.g., a high-density NAND flash memory device, different levels of voltages can be applied to the high-density memory device at different timings for suitable periods.